package dao;

import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

import model.Categoria;

import com.mysql.jdbc.Statement;

public class Categoria_DAO {
	
	public String inserir(Categoria categoria){
		String retorno = "Falha";
		try {
			Statement stmt = (Statement) Conexao.getConn().createStatement();
			stmt.execute("insert into Categoria (nome) values ('"+categoria.getNome()+"')");
			retorno = "Sucesso";
		} catch (Exception e) {
			e.printStackTrace();
		}
		return retorno;
	}
	
	public String altera(Categoria categoria){
		String retorno = "Falha";
		try {
			Statement stmt = (Statement) Conexao.getConn().createStatement();
			stmt.execute("update Categoria set nome='"+categoria.getNome()+"' where codigo="+categoria.getCodigo());
			retorno = "Sucesso";
		} catch (Exception e) {
			e.printStackTrace();
		}
		return retorno;
	}
	
	public String remover(Categoria categoria){
		String retorno = "Falha";
		try {
			Statement stmt = (Statement) Conexao.getConn().createStatement();
			stmt.execute("delete from Categoria where codigo="+categoria.getCodigo());
			retorno = "Sucesso";
		} catch (Exception e) {
			e.printStackTrace();
		}
		return retorno;
	}
	
	public List<Categoria> listar() {
		List<Categoria> categorias = new ArrayList<Categoria>();
		try {
			Statement stmt = (Statement) Conexao.getConn().createStatement();
			ResultSet rs = stmt.executeQuery("Select * from Categoria");
			while (rs.next()) {
				Categoria categoria = new Categoria();
				categoria.setCodigo(rs.getInt("codigo"));
				categoria.setNome(rs.getString("nome"));
				
				categorias.add(categoria);
				
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		return categorias;
	}
	
	public Categoria getCategoriaForId(String codigo){
		Categoria categoria = new Categoria();
		try {
			Statement stmt = (Statement) Conexao.getConn().createStatement();
			ResultSet rs = stmt.executeQuery("Select * from Categoria where codigo = "+codigo);
			rs.next();
			categoria.setCodigo(rs.getInt("codigo"));
			categoria.setNome(rs.getString("nome"));				

		} catch (Exception e) {
			e.printStackTrace();
		}
		
		return categoria;
	}

}

